/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package MetricsRetriever;

import DataStructures.Metrics;
import DataStructures.ProjectInformation;
import DataStructures.BugData;
import MetricsRetriever.RetrieverComponents.RepositoryManager;
import MetricsRetriever.RetrieverComponents.MetricsManager;
import MetricsRetriever.RetrieverComponents.BugManager;
import DataStructures.*;
import MetricsRetriever.RetrieverComponents.Matcher;
import java.util.ArrayList;
import java.util.HashMap;

/**
 *
 * @author Manuel
 */
public abstract class Retriever {

    protected ProjectInformation projectInfo;
    protected MetricsManager metricsManager;
    protected RepositoryManager repositoryManager;
    protected BugManager bugManager;
    protected Matcher matcher;

    public abstract ProjectInformation getContextData();
    public abstract HashMap getMetrics();
    public abstract HashMap<Integer, RevisionInformation> getRepositoryData(int r);
    public abstract BugData getBugData();
    public abstract Matcher getMatcher();

    public abstract void setBugManager(BugManager bm);

    public abstract void setMetricsMeasurer(MetricsManager mm);

    public abstract void setRepositoryManager(RepositoryManager rm);

    public abstract void setMatcher(Matcher m);

    public abstract boolean hasBugManager();

    public abstract boolean hasMetricsManager();

    public abstract boolean hasRepositoryManager();


}
